package com.sopt.eat.db;

import java.util.ArrayList;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.text.format.DateUtils;
import android.util.Log;

import com.sopt.eat.db.Constants.EatDB;
import com.sopt.eat.vo.SearchItem;

public class EatDBHelper extends SQLiteOpenHelper {

	static final String TAG = "changdoc";

	public EatDBHelper(Context c) {
		super(c, EatDB.DB_NAME, null, EatDB.DB_VERSION);

	}

	@Override
	public void onCreate(SQLiteDatabase db) {

		String curSql = "CREATE TABLE " + EatDB.TABLE_HISTORY + " ("
				+ EatDB.HISTORY_SEQ + " INTEGER PRIMARY KEY AUTOINCREMENT,"
				+ EatDB.HISTORY_LAT + " text," + EatDB.HISTORY_LOT + " text,"
				+ EatDB.HISTORY_PHONE + " text," + EatDB.HISTORY_TITLE
				+ " text," + EatDB.HISTORY_REGDATE_LONG + " text" + " );";

		db.execSQL(curSql);

	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		Log.v("changdoc", "DATABASE RESET TO version:" + newVersion);

		db.execSQL("DROP TABLE " + EatDB.TABLE_HISTORY);

		onCreate(db);
	}

	public ArrayList<SearchItem> getHistoryList() {
		ArrayList<SearchItem> result = new ArrayList<SearchItem>();
		SQLiteDatabase sdb = this.getReadableDatabase();

		Cursor cursor = sdb.query(EatDB.TABLE_HISTORY, null, null, null, null,
				null, EatDB.HISTORY_SEQ + " DESC");

		while (cursor.moveToNext()) {
			SearchItem curItem = new SearchItem();

			curItem.setSeq(cursor.getInt(cursor
					.getColumnIndex(EatDB.HISTORY_SEQ)));
			curItem.setTitle(cursor.getString(cursor
					.getColumnIndex(EatDB.HISTORY_TITLE)));

			curItem.setLatitude(cursor.getDouble(cursor
					.getColumnIndex(EatDB.HISTORY_LAT)));
			curItem.setLongitude(cursor.getDouble(cursor
					.getColumnIndex(EatDB.HISTORY_LOT)));

			curItem.setPhonenumber(cursor.getString(cursor
					.getColumnIndex(EatDB.HISTORY_PHONE)));
			Long curDate = cursor.getLong(cursor
					.getColumnIndex(EatDB.HISTORY_REGDATE_LONG));
			curItem.setRegdate(DateUtils.getRelativeTimeSpanString(curDate)
					.toString());

			result.add(curItem);

		}
		cursor.close();

		sdb.close();
		return result;
	}

	public boolean deleteBySeq(int seq) {

		SQLiteDatabase sdb = this.getWritableDatabase();
		int res = sdb.delete(EatDB.TABLE_HISTORY, EatDB.HISTORY_SEQ + " = "+seq, null);
		
		sdb.close();
		
		if(res>0)return true;
		else return false;
	}

}
